package com.lonely.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lonely.common.core.domain.Select;
import com.lonely.system.domain.entity.SysCustomer;
import com.lonely.system.domain.dto.customer.SysCustomerPageQueryDto;
import com.lonely.system.domain.dto.customer.SysCustomerSubmitDto;
import com.lonely.system.domain.vo.system.customer.SysCustomerPageQueryVo;

import java.util.List;
import java.util.Map;

/**
 * @author: 黄志标
 * @date: 2025/5/27 11:36
 * @description: 客户列表接口
 */
public interface ISysCustomerService extends IService<SysCustomer> {

    /**
     * 分页查询
     *
     * @param queryDto
     * @return
     */
    Page<SysCustomerPageQueryVo> page(SysCustomerPageQueryDto queryDto);

    /**
     * 创建客户
     *
     * @param submitDto
     * @return
     */
    void create(SysCustomerSubmitDto submitDto);

    /**
     * 编辑客户
     *
     * @param submitDto
     */
    void edit(SysCustomerSubmitDto submitDto);

    /**
     * 启用客户
     *
     * @param id
     */
    void enabled(Long id);

    /**
     * 禁用客户
     *
     * @param id
     */
    void disable(Long id);

    /**
     * 获取客户下拉列表
     *
     * @return
     */
    List<Select> getCustomerSelect();

    /**
     * 获取客户最大范围
     *
     * @param customerIds
     * @return
     */
    Map<Long, String> getCustomerMaxRangeMap(List<Long> customerIds);
}
